home *** CD-ROM | disk | FTP | other *** search
/ Gigantic Games 2 / Gigantic Games 2.iso / pc / _m_ / minesweeper / mine.h < prev    next >
C/C++ Source or Header  |  1994-12-23  |  3KB  |  80 lines

  1. // This may look like C code, but it is really -*- C++ -*-
  2. ///////////////////////////////////////////////////////////////////////////
  3. //
  4. //  AMIGA Minesweeper - Global definitions
  5. //
  6. //  (c) 1992 Hubert Feyrer (c9020@rrzc1.rz.uni-regensburg.de)
  7. //
  8. ///////////////////////////////////////////////////////////////////////////
  9.  
  10. #ifndef _MINE_H
  11. #define _MINE_H
  12.  
  13. #define WIN_T "AMIGA Minesweeper V0.98"
  14.  
  15. enum GameStat { GAME_WON, GAME_LOST, GAME_QUIT, GAME_RESTART, GAME_CONT };
  16.  
  17. class Field;
  18. struct Offset {
  19.     int dx;
  20.     int dy;
  21. };
  22.  
  23. extern "C" {
  24.     struct VisualInfo *vinfo;
  25.     struct IntuiBase *IntuitionBase;
  26.     struct GraphBase *GfxBase;
  27.     struct Library *GadToolsBase;
  28.     struct Window *win;
  29.     struct Gadget *glist;
  30.     struct Screen *scr;
  31.     struct timerequest treq;                // Für Spielzeit-Anfrage
  32.     struct MsgPort *tport;                  // -"- ----"---- ---"---
  33. };
  34. extern int fxs;                             // field x size
  35. extern int fys;                             // field y size
  36. extern Field ***minefield;                  // Das Minenfeld!
  37. extern int X0;                              // X-Offset
  38. extern int Y0;                              // Y-Offset
  39. extern int win_w;                           // Fensterhöhe
  40. extern int win_h;                           // Fensterbreite
  41. extern int lenx;                            // Feldgröße
  42. extern int leny;                            // Feldgröße
  43. extern int playtime;                        // Verspielte Zeit in Sekunden
  44. extern int minesleft;                       // Anzahl unentdeckter Minen
  45. extern Gadget *numgad;                      // Textgadget, um Restminen anzuzeigen
  46. extern char tnumgad[5];                     // minesleft
  47. extern Gadget *timegad;                     // Um Spielzeit anzuzeigen
  48. extern char ttimegad[5];                    // playtime
  49. extern Gadget *gogad;                       // Restart-Button
  50. extern char *argv0;                         // Programmname
  51. extern Offset validfields[8];               // Mögliche Nachbarfelder
  52. extern int countdown;                       // Nach zu markieren/aufdeckende Felder
  53.  
  54.  
  55. /*
  56. ** in init.cc
  57. */
  58. void init(int p);
  59. void shutdown(int rc, char *msg=NULL);
  60. void showmines(void);
  61. void calc_cnt(void);
  62. int rnd(int high);
  63. void hidemines(int p);
  64. void removemines(void);
  65.  
  66. /*
  67. ** in mine.cc
  68. */
  69. void game_won(void);
  70. void game_lost(void);
  71. inline int inminefield(int i, int j){ return (i>=0 && j>=0 && i<lenx && j<leny); }
  72. int main(int argc, char *argv[]);
  73.  
  74. /*
  75. ** in play.cc
  76. */
  77. GameStat play(int idle);
  78.  
  79. #endif /* _MINE_H */
  80.